From f081552da1f358a395b177ee71d79b26efcee3d4 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Florian=20M=C3=BCllner?= Date: Tue, 17 Sep 2013 22:37:06 +0200 Subject: [PATCH] icontheme: Make sure icon_info->scale doesn't end up 0 GdkPixbuf will fail returning %NULL if we try to scale a pixbuf to (0, 0), which will then trigger an assertion in gtk_icon_info_load_icon_finish(); we never want a scale of 0, so ensure it is at least 1. https://bugzilla.gnome.org/show_bug.cgi?id=708384 --- gtk/gtkicontheme.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gtk/gtkicontheme.c b/gtk/gtkicontheme.c index e9c9838ead..3f1ac3b00f 100644 --- a/gtk/gtkicontheme.c +++ b/gtk/gtkicontheme.c @@ -3721,12 +3721,12 @@ icon_info_ensure_scale_and_pixbuf (GtkIconInfo *icon_info, if (icon_info->forced_size) icon_info->scale = -1; else if (icon_info->dir_type == ICON_THEME_DIR_FIXED) - icon_info->scale = round((gdouble) scaled_desired_size / (icon_info->dir_size * icon_info->dir_scale)); + icon_info->scale = MAX(round((gdouble) scaled_desired_size / (icon_info->dir_size * icon_info->dir_scale)), 1.0); else if (icon_info->dir_type == ICON_THEME_DIR_THRESHOLD) { if (scaled_desired_size >= (icon_info->dir_size - icon_info->threshold) * icon_info->dir_scale && scaled_desired_size <= (icon_info->dir_size + icon_info->threshold) * icon_info->dir_scale) - icon_info->scale = round((gdouble) scaled_desired_size / (icon_info->dir_size * icon_info->dir_scale)); + icon_info->scale = MAX(round((gdouble) scaled_desired_size / (icon_info->dir_size * icon_info->dir_scale)), 1.0); else if (icon_info->dir_size > 0) icon_info->scale =(gdouble) scaled_desired_size / (icon_info->dir_size * icon_info->dir_scale); } -- 2.30.2